home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-2.iso / Files II / Prog / A / 4Plus 1.4.sit / 4Plus 1.4 / Version Notes < prev   
Encoding:
Text File  |  1990-12-26  |  17.8 KB  |  367 lines  |  [TEXT/KAHL]

  1. THE QUICK SKINNY ON 4PLUS 1.4...
  2.  
  3. This document is for users of older versions of 4Plus.  It basically is a list 
  4. of the enhancements and bug fixes implemented since the first release.  Starting 
  5. with version 1.4 it occurred to me that it would be nice to preface each list of 
  6. changes with the version number within which such changes were made, so I have 
  7. done this.  This occurs somewhere down below, so users of version 1.3 can skip 
  8. directly to that.
  9.  
  10. /* THE OPTIONS MENU */
  11.  
  12. It's now in the menu bar, by popular demand.  And since it's in the menu bar, 
  13. there's no need for it to be invoked like the other 4Plus menus, so you won't 
  14. find it listed in the configuration dialog.
  15.  
  16. /* THE OTHER MENUS */
  17.  
  18. You could always configure a menu to be invoked by wInZoomIn, wInGoAway, and 
  19. wInGrow.  Now, you can actually invoke the menu.  Before you couldn't.
  20.  
  21. The wNoHit configuration now excludes the menu bar.  In other words, configuring 
  22. a menu to be invoked by clicking outside of a window won't interfere with using 
  23. the menu bar.
  24.  
  25. /* TRASHING MACROS */
  26.  
  27. No longer available.  A questionable feature to begin with.  You want to delete 
  28. macros?  Invoke ‘Macro Record’ twice in a row and then type the key assignment 
  29. associated with the macro you want to delete.
  30.  
  31. /* USING MACROS */
  32.  
  33. Fixed a bug that didn't allow for macros to call other macros.  Also, a macro 
  34. assignment's priority has been changed.  A macro assignment will override a 
  35. 4Plus command.  And if you're using some other macro utility, the utility's 
  36. assignment will override 4Plus's assignment.
  37.  
  38. Macros are saved and restored in this version.
  39.  
  40. Macro assignments can be listed and changed via the configuration dialog in this 
  41. version.  Double clicking on an assignment will allow you to edit the macro.
  42.  
  43. A new command called ‘Examine Assignment’ will allow you to edit a macro without 
  44. having to go through the configuration dialog.  Simply invoke the ‘Examine 
  45. Assignment’ command, and invoke the desired macro assignment.  You get a macro 
  46. editing dialog.
  47.  
  48. /* MACHEADERS MENU */
  49.  
  50. Fixed a bug that prevented invoking the MacHeaders menu from within a source 
  51. file contained in a project that DID NOT use MacsBug symbols (from THINK C's 
  52. option dialog).
  53.  
  54. /* SEARCHES */
  55.  
  56. You can now assign searches to a key, like macros.  Read the docs for more info.
  57.  
  58. /* WINDOW POSITIONS */
  59.  
  60. Assigning window positions to a key, like macros.  Read the docs for more info.
  61.  
  62. /* LAUNCHING DOCUMENTS FROM THE FINDER */
  63.  
  64. Fixed a bug that prevented you from opening a THINK C file from the Finder under 
  65. MF.
  66.  
  67. /* USING DIFFERENT VOLUMES */
  68.  
  69. Fixed a bug that prevented 4Plus from operating correctly in the event that 
  70. THINK C and the current project resided on different volumes.  This affected 
  71. both the browsing menu facility as well as updating the resource header file.
  72.  
  73. /* RECOGNIZING THINK C */
  74.  
  75. Changed the way 4Plus detects a THINK C launch.  Previous versions would look at 
  76. the creator bytes of a launched application.  The current version now looks at 
  77. the application name.  You can change the name 4Plus looks for by observing that 
  78. the 'STR ' #129 resource contains the specification used to recognize THINK C.
  79.  
  80. /* FIND DIALOG MENUS */
  81.  
  82. Two pop up menus available within the Find dialog when the grep option is 
  83. enabled.  Read all about it in the docs.
  84.  
  85. /* HEAP MANAGEMENT */
  86.  
  87. Fixed a bug where the CODE resource was getting loaded and locked on startup.  
  88. This little stinker was put in so as to allow a user to do an option-command 
  89. doubleclick on the 4Plus icon from the Finder and get the configuration dialog.  
  90. And I completely forgot about it.  Here I am playing around with somebody else's 
  91. application heap and I don't even bother to look at it.  Duh.
  92.  
  93. /* THE MARK QUEUE */
  94.  
  95. Choosing the Trash Mark Queue item from the options menu no longer trashes THINK 
  96. C.  I'm also beginning to wonder about the mark queue.  I never use the damn 
  97. thing.  Maybe individual marks would be better, eh?  Each assignable to yet 
  98. another keystroke?  Or how about a mark stack?  Once you go to a mark, it 
  99. disappears.  What do you think?
  100.  
  101. /* MARK KEYS AND THE MARK STACK */
  102.  
  103. Different implementations of the whole mark business.  Read all about it in the 
  104. docs.
  105.  
  106. /* SUPERCLOCK, ON CUE, AND 4PLUS */
  107.  
  108. INIT incompatibilities have become something of a fact of life for the avid Mac 
  109. enthusiast, and I guess when you undertake writing an INIT it would be better to 
  110. dispense with the fantasy of being the only programmer in the universe whose 
  111. INIT plays well with others, thereby saving yourself the inevitable heartbreak 
  112. that will befall you once you learn that it is, in fact, not so.  I've tested 
  113. 4Plus using a variety of INIT configurations, and it almost always works well 
  114. regardless.  The only instance of a problem occurs with when both SuperClock 3.8 
  115. and On Cue 1.3 are being used.  And I can't figure out why.  The problem will 
  116. occur when attempting tolaunch another application using On Cue.  Every now and 
  117. then, On Cue will allow you to select the application, but as soon as you 
  118. release the mouse and the menu disappears, the Mac freezes.  This is under 
  119. MultiFinder 6.1b9 and System 6.0.5.  Removing SuperClock will fix this.  Don't 
  120. ask me why, and of course, removing 4Plus will fix it too!  I used Jasik's 
  121. Debugger to take a look at the whole business and it tells me that the only 
  122. patch SuperClock is patching is DrawMenuBar.  Which makes me wonder how it is 
  123. that SuperClock is getting those mouseDown events to toggle the clock settings.  
  124. And what it's doing thereafter.  I understand that there's a new version of 
  125. SuperClock out, 3.9 I guess.  Maybe it's a fix.
  126.  
  127. /* TEXT SELECTION ANOMALY */
  128.  
  129. Fixed a bug wherein under certain circumstances selecting text would invert a 
  130. portionof the scroll bar.
  131.  
  132. /* UPDATE RSRC.H CATASTROPHY */
  133.  
  134. My humble apologies to anyone who tried to do a ‘Update “rsrc.h”’ when the 
  135. rsrc.h file was open.  It wasn't pretty.  It now works.  You should also note 
  136. that it is possible to parse through a project resource file even if it is open 
  137. from another application, like ResEdit.  I'm opening it read only, and closing 
  138. it immediately after I'm done with it, so there shouldn't be a problem.  As to 
  139. whether or not the parse will reflect changes that are currently pending via 
  140. ResEdit will depend upon whether the file has been saved from within ResEdit.  
  141. As a bonus, 4Plus will now append comments to each #define indicating the 
  142. attributes that have been set for that resource.
  143.  
  144.  
  145. /*************************** VERSION 1.4 CHANGES ^1****************************/
  146.  
  147. /* THE COMMENTS MENU */
  148.  
  149. A new modifier key combination to remember!  This should make going through this 
  150. documentation a little easier, as well as find some limited use in code 
  151. development.  You can read all about it in the docs.
  152.  
  153. /* KEY PROMPTS AND MACROS */
  154.  
  155. The docs go on and on about how the ‘Repeat’ command is the only command that 
  156. can't be recorded in a macro.  Real programmers have no doubt discovered that 
  157. this isn't true.  Any command that resulted in the Key Prompt dialog (a 4Plus 
  158. exclusive) being displayed would be recorded, but the subsequent keyDown event 
  159. wouldn't be.  Which, for example, made the Mark Keys facility somewhat useless 
  160. when used from within a macro.  This has been fixed.  A side effect to this fix 
  161. is that any time 4Plus is waiting for a keyDown event in this context, it won't 
  162. accept anything else.
  163.  
  164. /* SCROLLING */
  165.  
  166. Fixed the ‘Page Up’ and ‘Page Down’ commands so that they should work with any 
  167. kind of scroll bars, as well as those instances where the commands wouldn't work 
  168. when the thumb was near the top or bottom of the window.  As a consequence of 
  169. the fix, it was easy to implement a ‘Scroll Up’ and ‘Scroll Down’ command.  
  170. Dazzle your friends.
  171.  
  172. /* TO REPEAT OR NOT TO REPEAT - MACROS */
  173.  
  174. The whole macro/repeat business has been reevaluated, and many significant 
  175. changes have come about as a result.  Most notable amongst these changes is that 
  176. a command or another macro may now be repeated within a macro.  Many more 
  177. commands now terminate a macro or the repeat command if they are unable to 
  178. perform their respective functions.  And certain 4Plus functions have been 
  179. hardcoded so as to be "unrepeatable".  The relevant sections in the docs have 
  180. been rewritten so as to reflect these changes, so go check it out.
  181.  
  182. /* UPDATE RSRC.H SPECIFICATION */
  183.  
  184. As previously mentioned, the 'STR ' #128 resource within 4Plus contains the 
  185. prefix for the filename to be used with the ‘Update “rsrc.h”’ command.  4Plus 
  186. now allows for a wildcard to be specified, the wildcard will be replaced with 
  187. the name of the currently open project.  The wildcard character is the colon 
  188. (':'), a little unusual perhaps but it's the only character I know of that can't 
  189. be used in a Macintosh filename, so there shouldn't be any conflicts.  As 
  190. before, 4Plus will append the".h" to the name on it's own, so it 
  191. needn't/shouldn't be specified in the resource.  So...
  192.  
  193. you're working on a project, let's call it foo.π...
  194. and the 'STR ' #128 in 4Plus is "\p:"...
  195. so the resource header file name will be “foo.π.h”
  196.  
  197. /* ABOUT 4PLUS... */
  198.  
  199. Choosing the ‘About 4Plus…’ item from the options menu is supposed to create 
  200. this really neat “warping through the stars” effect somewhat analogous to the 
  201. effect achieved by the ‘About THINK C’ item.  Clicking on the mouse then gives 
  202. you all the goodies about who, what and how much.  I coded this to be compatible 
  203. with all of the different monitor depths, including 24/32 bit.  I've tested this 
  204. on all of the different monitor depths, excluding 24/32 bit.  Now, some of you 
  205. are saying that it doesn't work, so I guess you've got 24/32 bit monitors.  I've 
  206. reviewed the logic,and I've made a tiny change with regards to determining what 
  207. the screen depth is, so maybe it'll work now.  As you might have guessed, I am 
  208. writing directly to the screen.  Spank me.  MoveTo(x, y), Line(0, 0); wasn't 
  209. cutting it, performance wise.  About... screens shouldn't be the focus of any 
  210. development effort, so if this doesn't work, I guess I'll have to go with the 
  211. proven approach of presenting a modal dialog box instead.
  212.  
  213. /* LAUNCHING MORE DOCUMENTS FROM THE FINDER */
  214.  
  215. Provided a mechanism whereby both text files and project files may now be opened 
  216. from the Finder under MF while THINK C is open.  I would have thought that 
  217. simply adding a couple of 'mst#' resources to THINK C would have accomplished 
  218. this (as outlined in the “MultiFinder Revisited” tech note), but it seems as if 
  219. you can only open project files at the expense of not being able to open text 
  220. files with this approach.  4Plus now will add 'mstr' 102 & 103 resources to 
  221. THINK C if they are not already present (4Plus uses the 'mstr's contained in 
  222. it's own file).  When a project is opened, 4Plus will set THINK C's 'mstr''s to 
  223. point to the File menu's Open… item.  When a project is closed, 4Plus will set 
  224. the 'mstr''s to point to the Project menu's Open Project… item.  Note that the 
  225. only time the 'mstr''s are actually written to THINK C's resource file is at 
  226. application launch, so that in the event you should decide to use THINK C 
  227. without 4Plus, things should behave normally.
  228.  
  229. /* MORE ABOUT SUPERCLOCK */
  230.  
  231. I've been advised that SuperClock uses the jGNEFilter gizmo to get those 
  232. mouseDowns in the menu bar, and that version 3.9 DOES solve the aforementioned 
  233. incompatibility problem.
  234.  
  235. /* SYSTEM 7.0 ^5 */
  236.  
  237. I've been advised from a truly reliable source that 4Plus is compatible with 
  238. System 7.  So smoke 'em if you got 'em.
  239.  
  240. /* SAM AND 4PLUS */
  241.  
  242. Somebody has observed that 4Plus has a problem with SAM.  Specifically, when SAM 
  243. completes a scan on an inserted disk and closes the associated dialog, 4Plus 
  244. hangs.  So now one Symantec program has been rendered incompatible with another 
  245. Symantec program... not bad for a few month's work!  I don't have access to SAM, 
  246. and without either buying SAM or getting a more robust bug report I won't be 
  247. able to do anything about the problem, if in fact it's specific to 4Plus :)
  248.  
  249. /* QUICKEYS AND 4PLUS */
  250.  
  251. Using QuicKeys to do a “Home” or “End” evidently causes a problem with the 
  252. “Power Thumb”.  One solution is to disable the “Power Thumb” in the options menu 
  253. while noting that it is still available by depressing the option key when 
  254. thumbing.
  255.  
  256. /* STILL MORE ABOUT RSRC.H */
  257.  
  258. Located beneath the “Update ‘rsrc.h’” item in the options menu is a new item,  
  259. “Update ‘proj.π.rsrc’”.  What I'm trying to do here is a little insane... you 
  260. can read all about it in the revised documentation.
  261.  
  262. /* ANATOMY OF A REALLY NASTY BUG ^2*/
  263.  
  264. Evidently there was a problem with 4Plus and older, 68000 based Macs which ranks 
  265. as one of the stupidest things I've ever done.  It goes something like this.  
  266. The only patch 4Plus makes at startup is to InitGraf, which it does so as to be 
  267. able to detect application launches (yes, I know about GetResource('CODE', 0), 
  268. but it comes too early).  4Plus then does a GetFCBInfo call using CurApRefNum to 
  269. see which application is getting launched, and if GetFCBInfo returns the string 
  270. "\pTHINK C", it's off to Patch-O-Rama.  The bummer with this is that the 
  271. ShowINIT code by Paul Mercer calls InitGraf.  And when InitGraf is called by 
  272. ShowINIT, there is no current application so CurApRefNum is zero.  So 4Plus then 
  273. feeds GetFCBInfo a non-existent file reference number and GetFCBInfo does it's 
  274. walk through the file control block array two bytes off the mark, all of which 
  275. is enough to make the 68000 puke while the bigger CPU's merrily go on with the 
  276. delusion that they're actually reading something meaningful.
  277.  
  278. So 4Plus now looks at CurApRefNum, and if it's zero, it concludes that whoever 
  279. it was that called InitGraf can't be THINK C.
  280.  
  281. Apologies to all who were burned by this.
  282.  
  283. /* VERSION TERRITORY */
  284.  
  285. 4Plus now lets you edit your 'vers' resources.  Additionally, the option exists 
  286. wherein the version number will get bumped up by one each and every time you 
  287. build your application/code resource/etc.  Read all about it in the docs.
  288.  
  289. /* OPEN HEADER */
  290.  
  291. This feature was added sometime ago, but was omitted from the Version Notes.  I 
  292. elaborate in the docs.
  293.  
  294. /* ENTER SELECTION TO REPLACE */
  295.  
  296. Yet another command... this one does the same thing as THINK C's "Enter 
  297. Selection" command except here we enter the selection as the replacement text.  
  298.  
  299. /* THE OPTIONS MENU AGAIN */
  300.  
  301. I guess I didn't know what I was doing when I initially stuck the options menu 
  302. in the menu bar, as is evident from the many reports I have received from people 
  303. who say it doesn't play well with the other INITs, most notably MacroMaker.
  304.  
  305. /* MACHEADERS MENU MISREPRESENTATION */
  306.  
  307. The MacHeaders menu did not work with explicitly included precompiled headers, 
  308. even though I said it did.  In some instances, this also affected the ancestry 
  309. menus as well.  This has been fixed.
  310.  
  311. /* ANCESTRY MENUS BUMMER */
  312.  
  313. If you precompile any of your header files containing class declarations and if 
  314. those header files utilized the #define _H_filename feature, 4Plus gave you 
  315. incomplete results when attempting to use the ancestry menus.  THINK C maintains 
  316. information about every source file contained within a project (obviously), and 
  317. part of that information relates to which header files are accessed by a source 
  318. file.  When THINK C sees an #include "filename.h" statement, it checks to see if 
  319. the symbol _H_filename is defined, and if it is, THINK C doesn't bother 
  320. including the file, and more importantly, doesn't associate the header file with 
  321. the source file within the project.  So 4Plus never knew it was there.
  322.  
  323. This has now been addressed by a new preference setting, "Enable Tree Search".  
  324. The name should say it all, but you can check out the docs.  Note that there is 
  325. a potential in this feature for those who don't precompile their header files 
  326. that contain class declarations.
  327.  
  328. /* METHODS MENU FIX */
  329.  
  330. Fixed a problem with the methods menu wherein a comment inserted between the 
  331. argument list and the method's open bracket prevented 4Plus from seeing the 
  332. method.
  333.  
  334. /* THE MARK THINGS DON'T ALWAYS WORK */
  335.  
  336. That's because I was updating the marks on null events only, the thinking being 
  337. that none of you were so fast at the keyboard so as to prevent a nullEvent from 
  338. creeping into the event queue every now and then.  Unfortunately, macro playback 
  339. WAS fast at the keyboard... so fast that it did indeed prevent those precious 
  340. nullEvents from spawning with the marks.  So the deal now is that, when 
  341. applicable, the appropriate marks get updated when appropriate... which means 
  342. that the mark things are now working.  Some other mark-related maintenance was 
  343. done as well... if you've ever found anomalies in mark behaviour, please check 
  344. the problem out again - chances are I've fixed it.
  345.  
  346. /* COMMENTS */
  347.  
  348. By far, the most requests for new features have been for some kind of facility 
  349. to deal with commented code.  One user wants a means to convert MPW/C++ style // 
  350. comments into C style /* comments */.  You can do this with grep... I've entered 
  351. the expression into the grep menus and assigned a search utilizing that expression 
  352. and created a macro that then performs the conversion with this version of 
  353. 4Plus.  Another user wants to be able to select text and then have 4Plus comment 
  354. it.  Well, the mark stack wasn't always working correctly with macros, but it is 
  355. now (I think), so two macros has been created that will comment selected text - 
  356. one for commenting out a portion of a single line of text and another for 
  357. commenting out a block (multiple lines) of text.  For the former, simply select 
  358. the text to be commented and invoke the first macro... for the latter, select 
  359. part of the first line and part of the last line to be block commented and 
  360. invoke the second macro.  To uncomment already commented text, I've provided a 
  361. new 4Plus command, it's called “Select Comment” and it will select the commented 
  362. portion of a document that contains the current selection range, if such a 
  363. comment exists.  As a result, I am including another macro that will uncomment 
  364. already commented text... just stick the selection range somewhere within the 
  365. comment and invoke the macro.
  366.  
  367.